package com.model;

import com.sun.istack.internal.FinalArrayList;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.util.ArrayList;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.JOptionPane;

public class Perpustakaan {

    public static String nama = "Perpustakaan Budi Luhur";
    public static ArrayList<Publikasi> DAFTAR_PUBLIKASI = new ArrayList<Publikasi>();
    public static ArrayList<Anggota> DAFTAR_ANGGOTA = new ArrayList<Anggota>();
    private static ArrayList<Pinjaman> DAFTAR_PINJAMAN = new ArrayList<Pinjaman>();

    public static String getNama() {
        return nama;
    }

    public static void setNama(String nama) {
        Perpustakaan.nama = nama;
    }

    public static void tambahPublikasi(Publikasi publikasi) {
        DAFTAR_PUBLIKASI.add(publikasi);
    }

    public static void tambahAnggota(Anggota anggota) {
        DAFTAR_ANGGOTA.add(anggota);
    }

    public static ArrayList<Pinjaman> getDAFTAR_PINJAMAN() {
        return DAFTAR_PINJAMAN;
    }

    public static void setDAFTAR_PINJAMAN(ArrayList<Pinjaman> aDAFTAR_PINJAMAN) {
        DAFTAR_PINJAMAN = aDAFTAR_PINJAMAN;
    }

    public static String bacaPublikasi() {
        if (DAFTAR_PUBLIKASI.isEmpty() == false) {
            Publikasi hasil = new Publikasi() {
            };
            for (int i = 0; i < DAFTAR_PUBLIKASI.size(); i++) {
                System.out.println(hasil.getJudul());
            }
            return hasil.getJudul();
        } else {
            return null;
        }
    }

    public static String bacaAnggota() {
        String idAnggota = Anggota.idAnggota;
        String nama = Anggota.nama;
        Anggota a = new Anggota(idAnggota, nama);
        if (DAFTAR_ANGGOTA.isEmpty() == false) {
            System.out.println(a.getIdAnggota());
            return a.getNama();
        } else {
            return null;
        }
    }

    public static void simpanFilePublikasi() throws FileNotFoundException, IOException {
        FileOutputStream outStream = null;
        if (DAFTAR_PUBLIKASI.isEmpty()) {
           JOptionPane.showMessageDialog(null,"Daftar Publikasi Kosong");
        }
        else{
            File outFile = new File("publikasi.dat");
            outStream = new FileOutputStream(outFile);
            ObjectOutputStream outObjectStream = new ObjectOutputStream(outStream);
            outObjectStream.writeObject(DAFTAR_PUBLIKASI);
            outStream.close();
        }      
    }

    public static void bacaFilePublikasi() throws FileNotFoundException, IOException {
        FileInputStream inStream = null;
        File inFile = new File("publikasi.dat");
        inStream = new FileInputStream(inFile);
        ObjectInputStream inObjectStream = new ObjectInputStream(inStream);
        try {
            DAFTAR_PUBLIKASI=(ArrayList<Publikasi>)inObjectStream.readObject();
        } catch (ClassNotFoundException ex) {
            Logger.getLogger(Perpustakaan.class.getName()).log(Level.SEVERE, null, ex);
        }
    }
}
